perm filename PARTP.F4[MSS,LCS] blob
sn#255999 filedate 1976-12-28 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00002 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 C THIS AIDS IN EXTRACTING PARTS FROM SCORES. SEE PT1.CMD
C00024 ENDMK
C⊗;
C THIS AIDS IN EXTRACTING PARTS FROM SCORES. SEE PT1.CMD
COMMON/STF/RSTFAC(-3/4),RSTJ2 /POSI/STFF(-3/4),JJ2,JPQ
1 /IVV/IWDS(200)
COMMON RS,JA,REST,J2,RQ(18),JX,PR,LX,RDIS
C ORDER OF COMMON BLOCKS **MUST** STAY AS IS!
COMMON/XRN/RN(4000) /SF/KL,RT,KP,STFSZ,NAMX
1 /PTR/PWDS(700)/LLL/L,LL,I,IX/XXX/LK,LP,JY
C INCREASE DIMENSION OF PWDS FOR VERY FULL PAGES.
DIMENSION KNM(10),NRD(100),MM(4000),NN(4000),
1 KWDS(1),KPN(1)
COMMON /PX/PN(1800) /Q/Q(8200)
COMMON /RCLF/KK,CLEF,KW,ITEM,RSTAFF,SN,YN,RNAM,RNAM2,RNAM3
DATA FIB/.7/,RSPC/24./,PGNUM/1.6/,RNMHT/16.0/,RNMSZ/1.2/
1 ,RLTRSZ/1.0/,SPCNT/0.7/
EQUIVALENCE (RQ(2),R4),(R5,RQ(3)),(R6,RQ(4)),(R7,RQ(5))
1,(R8,RQ(6)),(R9,RQ(7)),(RQ(10),XLFT)
1,(MM,RN),(NN,RN(4001)),(KWDS,PWDS),(KPN,PN)
C RQ(2) IS R4, RQ(3) IS R5 ETC.
JNM=1
MRD=0
JRD=0
TYPE 3
ACCEPT 2,RS,NTYPE
C TYPE ANY NUM AFTER NAME(I.E.5 SPACES) TO PRINT INST. NAMES AS READ.
IF(RS.EQ.' ')RS='OLD'
IF(RS.EQ.'OLD')CALL PT2
CALL IFILE(1,RS)
244 FORMAT(I,A5,30I)
544 READ(1,244,END=344),K,KNM(JNM),(IWDS(K),K=1,30)
JNM=JNM+1
DO 444 K=1,30
J=IWDS(K)
JRD=JRD+1
NRD(JRD)=J
444 IF(J.EQ.0)GO TO 544
344 KNM(JNM)='ZZZZZ'
JNM=1
JRD=0
744 XSIG=FIB
CLEF=-1
XMTR=FIB
XLFT=0
ENDLN=0
KQ=0
YCLEF=2.
YSIG=2.
YMTR=2.
KW=1
KX=1
RSTAFF=0
RM=0
L=1
LK=1
CC IF(LSTNM.NE.0)GO TO 87
CC10 IF(LSTNM.EQ.0)GO TO 83
CC87 IF(NAME.GE.LSTNM)GO TO 83
CC NAME=NAME+2
CC GO TO 84
86 FORMAT(1XA5)
3 FORMAT(' TYPE FILE NAME ',$)
CC300 FORMAT(' TYPE FINAL NAME ',$)
CC83 IF(JRD.EQ.0)GO TO 183
83 NAME=KNM(JNM)
JNM=JNM+1
IF(NAME.EQ.'ZZZZZ')GO TO 20
JREAD=-1
JRD=JRD+1
NXX=NRD(JRD)
NAMZ=NAME
GO TO 284
CC LSTNM=KNM(JNM)-2
C ALL DONE ↑↑
CC GO TO 283
CC183 TYPE 3
CC ACCEPT 2,NAME
CC IF(NAME.EQ.' ')GO TO 83
CC IF(NAME.EQ.'X')GO TO 20
CC TYPE 300
CC ACCEPT 2,LSTNM
CC IF(LSTNM.EQ.' ')LSTNM=NAME
CC IF(LSTNM.EQ.' ')GO TO 83
CC283 NAMZ=NAME
10 IF(LOOKF(NAME))GO TO 284
NAME=NAMZ+256
IF(LOOKF(NAME).GE.0)GO TO 83
NAMZ=NAME
C FOUND NO MORE TO READ
284 JZ=0
SN=200
SNMTR=SN
IF(RM.NE.0)GO TO 277
RM=-1
4 FORMAT(' TYPE INST NAME '$)
TYPE 4
ACCEPT 2,RNAM,K
RNAM2=0
RNAM3=0
RNAM4=0
IF(K.EQ.0)GO TO 277
TYPE 177
ACCEPT 2,RNAM2,K
IF(K.EQ.0)GO TO 277
C TYPE NUM AFTER NAME TO ENTER UP TO 4 NAMES.
TYPE 177
ACCEPT 2,RNAM3
TYPE 177
ACCEPT 2,RNAM4
177 FORMAT(' OTHER INST NAME ',$)
C FOUND NO MORE TO READ
1212 CALL PUTEXT('BARS','PAG')
CALL EXTOUT(KBAR,512)
RSTJ2=SAVSIZ
CALL EXTOUT(RSTFAC,128)
CALL FINEXT
C K (NUM OF BARS - UP TO 511) IS FIRST LOC OF KBAR.
CALL PT2(KPN,Q,KWDS,RN)
277 TYPE 86,NAME
CALL GETEXT(NAME,'DMD')
C LP IS START OF RN ARRAY THIS TIME
CALL EXTIN(RSTFAC,20)
CALL EXTIN(KWDS,JJ2)
CALL EXTIN(RN,JPQ)
IF(SAVSIZ.EQ.0)SAVSIZ=RSTJ2
CC IF(INM.EQ.'99')GO TO 20
CC K=SN/100.
CC77 TYPE 86,NAME
CC IF(JRD.EQ.0)GO TO 777
C FOR COMMAND FILE
CC N=NRD(JRD)
CC N=N-1
CC NRD(JRD)=N
CC IF(N.GT.0)GO TO 277
CC IF(NRD(JRD+1))LSTNM=NAME
CC IF(N.EQ.0)GO TO 277
CC JRD=JRD+1
CC IF(N.EQ.-1)GO TO 43
CC GO TO 83
CC777 IF(KW.EQ.1)GO TO 277
CC TYPE 577
CC ACCEPT 2,PG
CC IF(PG.EQ.'N')GO TO 43
CC577 FORMAT(' N=NEW BRACE OR <CR> ',$)
CC277 REWIND 21
277 TYPE 86,NAME
CALL GETFIL(NAME)
CC CALL IFILE(21,NAME)
C LP IS START OF RN ARRAY THIS TIME
CALL FASTIN(RSTFAC,20)
CALL FASTIN(PWDS(KW),JJ2)
CALL FASTIN(RN(KX),JPQ)
CC IF(JREAD)GO TO 477
C SKIP FIRST TIME FOR THIS PAGE
LA=KX-1
P=0
DO 577 K=KW,KW+JJ2-3
J=KWDS(K)+LA
R=RN(J+1)
IF(R.NE.8)GO TO 677
IF(RN(J).LT.6)GO TO 577
C NO NAME ON THIS STAFF - SO JUMP
IF(RN(J+7).NE.0)GO TO 577
C SKIPS INVISIBLE STAVES.
XLFT=RN(J+3)
C LEFT LIMIT OF STAFF
R9=RN(J+9)
IF(NTYPE.NE.0)TYPE 86,R9
IF(R9.EQ.RNAM)GO TO 977
IF(RNAM2.EQ.R9)GO TO 977
IF(RNAM3.EQ.R9)GO TO 977
IF(RNAM4.NE.R9)GO TO 577
977 SN=RN(J+2)+RSTAFF
SNMTR=SN
GO TO 477
677 IF(R.NE.10)GO TO 79
IF(RN(J).LT.4)GO TO 79
IF(RN(J+6).GT.RNUM)GO TO 79
C SKIPS PAGE NUMS. (I.E. BIG SIZE)
IF(RN(J).GE.6)P=-1
C FOUND A NUM. IN BOX ↑↑, REMEMBER IT DID.
GO TO 577
79 IF(R.NE.16)GO TO 577
IF(RN(J+5).GE.100)P=-1
C PICKS UP WORD WITH SZ >100
577 CONTINUE
C DIDN'T FIND USEFUL INFO SO SKIP THIS FILE
IF(JREAD.OR.P)GO TO 477
C ALWAYS USE THE FIRST FILE READ AND FILES WITH REHRSL NUMS.
KWDS(KW)=LA
GO TO 877
CC READ(21),ITEM,I,
CC 1 (PWDS(K),K=KW,ITEM+KW),(RN(K),K=KX,I+KX-2),ISCR,(IV(K),K=1,ISCR),
CC 1 LCNT,(IV(K),K=1,LCNT),RSTFAC,STFF
477 I=JPQ-2
C READS AND WRITES 1 EXTRA WORD
ITEM=JJ2+KW-3
CC ITEM=ITEM+KW-1
JREAD=0
IF(KW.NE.1)CALL LOOP1
RSTAFF=RSTAFF+8
CC IF(KW.EQ.1)GO TO 377
CC DO 477 K=KW,ITEM+1
CC PWDS(K)=PWDS(K)+R
CC LA=PWDS(K)+2
CC477 RN(LA)=RN(LA)+RSTAFF
C FOR COMBINED FILES
377 KW=ITEM+1
CC R=PWDS(KW)-1
KK=JPQ
CC KX=KX+I-1
KX=KX+JPQ
CC NAME=NAME+2
CC IF(NAME.GT.LSTNM)GO TO 44
CC IF(LOOKF(NAME))GO TO 257
CC43 NAME=NAME-2
877 NXX=NXX-1
NAME=NAME+2
IF(NXX.NE.0)GO TO 277
JRD=JRD+1
NXX=NRD(JRD)
IF(NXX.NE.0)GO TO 44
NAME=0
NAMZ=0
44 KX=1
JREAD=-1
RSTAFF=0
KW=1
13 IWDS(1)=1
YN=0
IF(SN.NE.200)GO TO 8
YN=-1
IF(YCLEF.GT.1)YCLEF=-1
IF(YSIG.GT.1)YSIG=-1
IF(YMTR.GT.1)YMTR=-1
8 ZLFT=XLFT+.5
RNUM=PGNUM
C SIZE FACTOR FOR PAGE NUMBER FINDER (MAYBE).
DO 6 K=1,ITEM
R5=-1
J=KWDS(K)
R=RN(J+1)
IF(R.NE.10)GO TO 800
IF(RN(J).LT.4)GO TO 80
IF(RN(J+6).GT.RNUM)GO TO 6
C SKIPS PAGE NUMS. (I.E. BIG SIZE)
IF(RN(J).LT.6)GO TO 80
C FOUND A NUM. IN BOX ↓↓
RN(J+6)=RNMSZ
RN(J+4)=RNMHT
C THE ABOVE SET HEIGHT AND SIZE OF REHEARSAL NUMS.
CC2182 RN(J+2)=SN
CC IF(YN.EQ.'Y')RPOS=RN(J+3)-3.
GO TO 810
800 IF(R.NE.4)GO TO 80
CCC IF(NBAR)GO TO 80
IF(RN(J).NE.2)GO TO 182
C FOUND A BAR LINE
IF(RN(J+3).LT.ZLFT)GO TO 6
C DROPS BAR LINE AT LEFT OF STAFF.
CC KZ=RN(J+4)/100.
CC RN(J+4)=1.+KZ*100.
C KZ IS FOR THICK BARS.
CC RR=RN(J+3)
CC DO 82 KY=K+1,ITEM
CC KZ=PWDS(KY)
CC IF(RN(KZ+1).NE.4)GO TO 82
CC IF(RN(KZ).NE.2)GO TO 82
C AVOIDS DUPLICATE BARS.
CC IF(ABS(RR-RN(KZ+3)).GT..5)GO TO 82CC
CC RN(KZ+2)=99
CC RN(KZ+1)=0
CC82 CONTINUE
CALL DBAR(K,ITEM,J)
IF(YN.EQ.0)GO TO 810
CC CALL ADDRST(RR,XWDS,PN)
CALL ADRST(IWDS)
GO TO 6
182 RN(J+1)=44
C CHANGES CODE NUM
IF(RN(J).LT.5)GO TO 80
IF(RN(J+7).GE.3)GO TO 6
C SKIP HEAVY BRACKETS.
80 IF(R.NE.16)GO TO 180
IF(RN(J+5).GE.100)RN(J+2)=SN
C CATCHES WANTED TEXT ON OTHER LINES. (P5>100)
IF(RN(J+5).GT.RLTRSZ)RN(J+5)=RLTRSZ
C LIMITS SIZE OF LETTERS. ADJUST RLTRSZ TO SUIT. (SET AT 1.0 NOW)
180 RSN=RN(J+2)
C THE STAFF NUM.
IF(R.NE.3)GO TO 3801
IF(YCLEF)GO TO 4801
IF(RSN.NE.SN)GO TO 6
4801 RR=AMOD(RN(J+5),100.0)
C ↑↑↑↑↑ BECAUSE SOME CLEFS ARE MINI-CLEFS
IF(RN(J).LT.3)RR=0
IF(RR.EQ.CLEF)GO TO 6
C SKIP DUPLICATE CLEFS.
IF(RR.GT.3.AND.RR.LT.100)GO TO 4800
C CATCHES CLEFS (≤3) OR MINI-CLEFS (>3)
IF(YCLEF.GE.0)GO TO 17
TYPE 16,RR
16 FORMAT(' CLEF=',F2.0,' --CHANGE TO--',$)
ACCEPT 5,RR
R5=RR
17 CLEF=RR
C** IF(YCLEF.EQ.1)GO TO 4802
C** IF(YCLEF)YCLEF=1.
YCLEF=0
GO TO 1800
4800 IF(RSN.NE.SN)GO TO 6
RN(J+1)=33
GO TO 1800
4802 YCLEF=0
C CATCHES CLEF AFTER FIRST RESTS.
GO TO 6
3801 IF(R.NE.17)GO TO 3800
IF(YSIG)GO TO 3802
IF(RSN.NE.SN)GO TO 6
3802 RR=RN(J+5)
IF(RR.EQ.XSIG)GO TO 6
YSIG=0
XSIG=RR
C SKIPS DUPL. KEY SIGS.
GO TO 1800
3800 IF(R.EQ.8)GO TO 6
C OMIT ALL STAVES FOR NOW
IF(R.NE.18.)GO TO 81
IF(YMTR)GO TO 1801
IF(SNMTR.EQ.200.)SNMTR=RSN
C SO IT WON'T REPEAT METERS.
C CHECK ALL METERS IF LINE HAS NOT THIS INST.
IF(RSN.NE.SNMTR)GO TO 6
1801 RA=RN(J+5)*100.+RN(J+6)
C THE TIME SIG.
IF(XMTR.EQ.RA)GO TO 6
XMTR=RA
YMTR=0
GO TO 1800
81 IF(RSN.NE.SN)GO TO 6
1800 IF(RN(J+3).LT.XLFT)GO TO 6
C OMIT SOME THINGS TO LEFT OF STAFF BEGINNING.
IF(R.NE.5)GO TO 810
C NEXT CHECKS FOR SLUR OVER END OF LINE
IF(RN(J+6).GE.199.)RN(J+6)=200.
C ****** 200.0 ABOVE IS SUBJECT TO CHANGE!
810 CALL PNRN(J,IWDS,K)
CC810 JA=PWDS(K+1)
CC RN(J+2)=RS
CC DO 7 KY=J,JA-1
CC PN(LK)=RN(KY)
CC7 LK=LK+1
CC IF(R5)GO TO 6666
CC IF(PN(J).EQ.2)LK=LK+1
CC PN(J)=3
CC PN(J+5)=R5
CC6666 L=L+1
CC XWDS(L)=LK
6 CONTINUE
C******↓↓↓↓↓↓ RHYTH RESET ↓↓↓↓↓↓↓↓
CC I=1
CC DO 243 K=1,L-1
CC LB=XWDS(K)+1
CC IF(PN(LB).NE.16)GO TO 243
CC IF(PN(LB-1).LT.8)GO TO 243
CC JL=XWDS(K-1)
CC244 PN(LB+2)=PN(JL+3)
C PUTS CONTINUATION OF TEXT IMMEDIATELY AFTER PREV. POS.
C FOR SPACING PROBLEMS BELOW.
CC243 CONTINUE
CC M=2
CC J=1
CC24 RA=100000.
C POSITION
CC DO 21 K=1,L-1
CC JL=XWDS(K)+3
CC R=PN(JL)
CC IF(R.EQ.100000)GO TO 21
CC241 IF(ABS(R-RA).GT..1)GO TO 240
CC R=RA
CC PN(JL)=R
C PUT IN HERE MULTI-VOICE TRAP
CC GO TO 21
CC240 IF(R.GT.RA)GO TO 21
C LINES THEM UP
CC I=K
CC RA=R
CC21 CONTINUE
CC IF(RA.EQ.100000)GO TO 23
C JUMP IF ALL SORTED
CC242 JL=XWDS(I)
CC LA=JL
CC N=PN(JL)+3
C NEXT POINTER
CC PWDS(M)=PWDS(M-1)+N
CC M=M+1
CC DO 22 K=J,J+N-1
CC RN(K)=PN(JL)
CC22 JL=JL+1
CC PN(LA+3)=100000
C PUT IT ASIDE
CC J=N+J
CC GO TO 24
CALL SORT(IWDS)
23 LL=0
C TO 'MOVE' INSTEAD OF 'JUSTIFY'
IF(ENDLN.EQ.0)GO TO 2334
R4=0
R5=1000
R7=0
RS=0
R8=ENDLN
R9=0
GO TO 33
2334 R4=0
R5=10000
CC R8=-XLFT
R8=1.-RN(4)
R9=0
C INSERT?? →→ IF(R8.GT.0)R9=200.
R7=0
RS=0
33 CALL PTMOVE(RN,PWDS)
CC DO 32 K=1,IFIX(PWDS(L))-1
CC KQ=KQ+1
CC32 Q(KQ)=RN(K)
CALL SHFT0(KQ)
CC L=1
CC LK=1
ENDLN=ENDLN+200-XLFT
TYPE 3001,KQ
GO TO 10
27 FORMAT(' RESPACING')
CC20 K=1
20 TYPE 27
CC KK=1
CC220 JJ=Q(K)+3
CC PN(KK)=K
C NEW POINTER
CC K=K+JJ
CC KK=KK+1
CC IF(K.LT.KQ)GO TO 220
CC PN(KK)=K
CALL SHFT1(KQ)
CC L=KK
KK=L
TYPE 3001,L
C DELETES EXTRA BAR LINES, ETC.
CALL RESTS
C FROM NOW ON ALL CODES #-1 ARE IGNORED, RESTS HAVE BEEN COMBINED.
CC K=1
CC L=1
CC LL=0
CC LK=1
CC221 IF(Q(IFIX(PN(K))+1))GO TO 321
CC DO 421 KL=IFIX(PN(K)),IFIX(PN(K+1))-1
CC LL=LL+1
CC421 Q(LL)=Q(KL)
CC LK=LK+1
CC PN(LK)=LL+1
CC321 K=K+1
CC IF(K.LT.KK)GO TO 221
CC L=LK-1
CALL SHIFT
C L=NUMBER OF ITEMS FOR RHY RECONS.
N=0
S=0
DO 601 K=1,L
J=KPN(K)
N=N+1
MM(N)=J+3
C POS PTR.
R=Q(J+1)
IF(R.GT.4)GO TO 602
IF(R.NE.1)GO TO 2601
IF(Q(J).LT.7)GO TO 2601
IF(Q(J+9))GO TO 602
C JUMP IF R9=-1, AN IGNORED NOTE (NO LEDGER LINES)
2601 IF(R.NE.4)GO TO 3601
LA=K+1
4601 M=KPN(LA)
P=Q(M+1)
IF(P.LT.4)GO TO 3601
IF(P.EQ.4)GO TO 601
C GO ON IF NEXT AFTER BAR IS NOTE, REST, CLEF, KSIG, METER
IF(P.EQ.17)GO TO 3601
IF(P.EQ.18)GO TO 3601
IF(LA.GE.L)GO TO 601
LA=LA+1
GO TO 4601
3601 P=Q(J+3)
IF(ABS(P-S).LE.SPCNT)GO TO 602
C SEE DATA -- SPCNT=SPACE BETWEEN NOTES. <2.5 IS CONSIDERED 0.
S=P
1601 NN(N)=R
C -1= IMPORTANT ITEM FOR SPACING
GO TO 601
602 IF(R.EQ.17)GO TO 1601
IF(R.EQ.18)GO TO 1601
IF(R.NE.9)GO TO 718
IF(Q(J+5).EQ.8)GO TO 1601
C FOR BAR REPEAT SIGN.
718 NN(N)=0
IF(R.GT.7.AND.R.LT.40)GO TO 601
IF(R.LT.5)GO TO 601
C FOR DBL STPS
C NEXT POS2 AND 3 OF CERTAIN ITEMS
N=N+1
MM(N)=J+6
NN(N)=0
IF(R.NE.6)GO TO 601
C NEXT FOR BEAMS
RZ=Q(J)
IF(RZ.LT.8)GO TO 608
IF(Q(J+10).LT.30)GO TO 608
N=N+1
MM(N)=J+8
NN(N)=0
608 IF(RZ.LT.7)GO TO 601
IF(Q(J+7))GO TO 688
IF(Q(J+8))601,689,688
689 IF(RZ.LT.8)GO TO 601
IF(Q(J+10).EQ.0)GO TO 601
C FOUND A POS. IN P9
688 IF(Q(J+9).LE.0)GO TO 601
N=N+1
MM(N)=J+9
NN(N)=0
601 CONTINUE
C NEXT SORTS THE POINTS
6000 J=1
610 IF(Q(MM(J)).LE.Q(MM(J+1)))GO TO 611
CALL EXCHG(MM(J),NN(J))
C ABOVE EXCHGS --(J) AND --(J+1)
IF(J.EQ.1)GO TO 611
J=J-1
GO TO 610
611 J=J+1
IF(J.LT.N)GO TO 610
C NOW ALL SORTED
S2=Q(MM(1))
P1=S2
C THE ABOVE 2 CAN GO BELOW 612
J=1
612 IF(NN(J).EQ.0)GO TO 613
6112 M=J+1
S1=S2
616 IF(NN(M).NE.0)GO TO 614
IF(M.EQ.N)GO TO 614
M=M+1
GO TO 616
C ASSUMES PROPER END OF LIST
614 K=MM(J)
R=Q(K-2)
C THE CODE #
IF(R.NE.1)GO TO 615
P=Q(K+6)
IF(Q(K-3).GE.7)GO TO 629
2629 TYPE 1629,(Q(LA),LA=K+1,K+6)
P=1.
1629 FORMAT(' NO RHYTHMIC VALUE ',6F8.2)
C WAS THERE A RHYTH VALUE
629 IF(Q(K+5).EQ.1000)GO TO 630
IF(Q(K-3).GE.8.AND.Q(K+7).EQ.1)GO TO 630
C GRACE NOTES R8=1000 OR R10=1
IF(P.GE..25)GO TO 617
DO 1600 K=J+1,N-1
LA=NN(K)
IF(LA.EQ.0)GO TO 1600
IF(LA.GT.4)GO TO 1600
IF(LA.GT.1)GO TO 617
C NEXT IS A NOTE NOW
IF(AMOD(Q(MM+2),10.0).NE.0)P=.25
C ADD SPACE IF NEXT NOTE HAS ACCI AND THIS IS .LT.16TH.
GO TO 617
1600 CONTINUE
GO TO 617
615 IF(R.NE.2)GO TO 618
P=Q(K+4)
IF(P.LT..2)P=.2
C 32ND, 64TH RESTS GET BIGGER!
IF(Q(K-3).GE.5)GO TO 617
C NO VALUE WAS FOUND
GO TO 2629
618 IF(R.EQ.4)P=2.6
IF(R.EQ.3)P=5
IF(R.GE.17)P=3.
IF(R.NE.9)GO TO 628
C FOR BAR REPEAT SIGN. =HALF NOTE SPACE
P=2.
GO TO 617
630 P=.05
C FOR GRACE NOTES
617 IF(P.EQ.0)P=1
IF(P.LT..125)P=.125
IF(P.GT.8)P=8
P=(P+(.125-P)*.7)*RSPC
IF(P.GT.18)P=P-P/7
C MAKE THIS BETTER!!!!
628 K=MM(M)
S2=Q(K)
P2=P1+P
Q(K)=P2
IF(M-J.EQ.1)GO TO 6113
C NEXT ADJUSTS STUFF IN BETWEEN
R=P/(S2-S1)
DO 620 K=J+1,M-1
LA=MM(K)
620 Q(LA)=P1+R*(Q(LA)-S1)
6113 P1=P2
J=M
IF(J.LT.N)GO TO 6112
613 J=J+1
IF(J.LT.N)GO TO 612
C ALL DONE!
C*** IF(XLFT.EQ.0)GO TO 600
C NEXT MOVES LEFT SIDE OF STAFF TO ZERO
CC R5=10000.
CC R7=RS
CC R8=-XLFT
CC R4=-101
CC R9=0
CC CALL PTMOVE(Q,PN)
CC J=1
CC CALL OFILE(1,'PX')
CC LL=PN(L+1)
CC2929 WRITE(1),L,LL,
CC 1(PN(K),K=1,L+1),(Q(K),K=1,LL-1),NAMX,STFSZ,J,J,RSTFAC,STFF,IV,STFF
CALL PUTFIL('PARTS')
2929 JJ2=L+2
JPQ=KPN(L+1)+1
CALL FASTOU(RSTFAC,128)
CALL FASTOU(PN,JJ2)
CALL FASTOU(Q,JPQ)
CALL FINFIL
CALL PT2(PN,Q,PWDS,RN)
2 FORMAT(A5,30I)
3001 FORMAT(2I6)
5 FORMAT(5F)
END